﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace CSP.Model.Entities
{
    public class UserChange:IDisposable
    {
        public string UserNameChange { get; set; }
        public string UserGender { get; set; }

        public enum UserChangeTypes { ColleagueChange, BlogChange, StatusChange, AnniversaryChange, SiteMembershipChange, DocumentChange, Tweet};
        public enum ColleagueChangeTypes { Add, Delete };
        public enum DocumentChangeTypes { Added, Updated, Deleted};
        
        public UserChangeTypes UserChangeType { get; set; }
        public ColleagueChangeTypes ColleagueChangeType { get; set; }
        public DocumentChangeTypes DocumentChangeType { get; set; }

        /*public bool IsColleagueChange { get; set; }
        public bool IsBlogChange { get; set; }
        public bool IsStatusChange { get; set; }
        public bool IsAnniversaryChange { get; set; }
        public bool IsSiteMembershipChange { get; set; }
        */

        public string colleagueNameChange { get; set; }
        public string documentNameChange { get; set; }
        public string blogTitleChange { get; set; }
        public string blogURLChange { get; set; }
        public string statusChange { get; set; }
        public string anniversaryChange { get; set; }
        public string membershipChange { get; set; }
        public string colleaguePictureUrl { get; set; }
        public string colleagueEmail { get; set; }

        public DateTime changeDate { get; set; }

        public UserChange()
        {
        }

        //
        // Summary:
        //     Releases all unmanaged resources used by the Web site object.
        public void Dispose()
        {
            
        }


    }

    public class UserChangeCollection : SortableCollectionBase
    {
        public UserChangeCollection()
        {
            base.SortObjectType = typeof(UserChange);
        }

        public UserChange this[int index]
        {
            get
            {
                return ((UserChange)List[index]);
            }
            set
            {
                List[index] = value;
            }
        }
        public int Add(UserChange value)
        {
            return (List.Add(value));
        }
        public int IndexOf(UserChange value)
        {
            return (List.IndexOf(value));
        }
        public void Insert(int index, UserChange value)
        {
            List.Insert(index, value);
        }
        //......
    }
}
